Web configurable human input devices

ABSTRACT

A web configurable human input device is provided. The device includes at least one mechanical control element having a dynamically alterable appearance. In some embodiments, the appearance of the at least one mechanical control element is dynamically altered in response to the execution of an input device web script. An example of such a web configurable human input device is an active keyboard in which the at least one mechanical control element having a dynamically alterable appearance is one of an array of keys of the active keyboard. When the active keyboard is connected to a web-enabled device, at least one key of the array of keys is configured to alter its appearance in response to the execution of the input device web script.

BACKGROUND

The prevalence of the Internet has resulted in the availability to thegeneral public of billions of unique information pages. Along with thishas come a steadily increasing complexity in web browser interfaces, webpage content, and an increasing amount of information displayed to auser as screens grow larger and resolutions higher.

The growth in web page interface complexity, coupled with the absence ofa “standard” layout for web pages, makes navigating the Web an exercisein trial and error, especially for a child or novice user. Every object,picture, or text item on a screen can potentially be “clickable;” andalthough relatively sound interface design would lead to giving a usercues such as underlined text, this rule is not universally adhered to.

The discussion above is merely provided for general backgroundinformation and is not intended to be used as an aid in determining thescope of the claimed subject matter.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter. The claimed subject matter is not limited to implementationsthat solve any or all disadvantages noted in the background.

A web configurable human input device is provided. The device includesat least one mechanical control element having a dynamically alterableappearance. In some embodiments, the appearance of the at least onemechanical control element is dynamically altered in response to theexecution of an input device web script. An example of such a webconfigurable human input device is an active keyboard in which the atleast one mechanical control element having a dynamically alterableappearance is one of an array of keys of the active keyboard. When theactive keyboard is connected to a web-enabled device, at least one keyof the array of keys is configured to alter its appearance in responseto the execution of the input device web script. Employing such anactive keyboard allows web page authors to control the appearance (andsometimes the content) of the keyboard function keys, for example, todisplay a dynamic menu of possible actions.

In general, web applications can communicate with web configurable humaninput devices, in accordance with the present embodiments, to therebymake their web sites easier to navigate and use, especially for noviceusers.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is simplified block diagram of a computing system that includes aweb configurable human input device in accordance one of the presentembodiments.

FIGS. 2A and 2B are simplified block diagrams of other exampleembodiments of web configurable human input devices.

FIGS. 3A and 3B are simplified block diagrams that illustrate differentmethod embodiments.

FIG. 4 is a block diagram of one illustrative operating environment inwhich web configurable human input devices in accordance with thepresent embodiments can be used.

DETAILED DESCRIPTION

Disclosed is a web configurable human input device. As noted earlier,the device includes at least one mechanical control element having adynamically alterable appearance. The appearance of the at least onemechanical control element is dynamically altered in response to theexecution of an input device web script. An active keyboard, which is anexample of such a web configurable human input device, is firstdescribed below. Thereafter, other example web configurable human inputdevices are described. Finally, a description of an example computingenvironment in which such devices can be employed is provided.

FIG. 1 is simplified block diagram of a computing system 100 thatincludes a web configurable human input device in accordance one of thepresent embodiments. As can be seen in FIG. 1, computing system 100includes a web server 102, a web-enabled client device 104 and an activekeyboard 106, which, as noted above, is one example of a webconfigurable human input device.

In the example embodiment shown in FIG. 1, web server 102 is a hypertexttransfer protocol (HTTP) server which includes hypertext markup language(HTML) code designed to render web pages on a display device of a clientwhen downloaded and interpreted by the client web browser, in a mannerthat standard web servers and browsers currently operate. However, inaccordance with the present embodiments, web server 102 also includescustom HTML code extensions designed to render display images on keycapsof adaptive keyboard 106 when downloaded and interpreted by specialextensions of the client web browser. Additionally, server 102 includesstored bitmaps of keytop images (denoted by reference numeral 110),which are requested by the client web browser when needed, and logic inthe form of a downloadable script (input device web script) 112, whichcan control what actions are taken and what is to be displayed on theadaptive keyboard keytops when any event takes place.

In connection with the present embodiments, two different exampletechniques for utilizing the input device web script 112 to controlinformation on adaptive keyboard 106 are provided. In a first technique,input device web script 112 is executed on web server 102. Morespecifically, in this technique, when a particular key on activekeyboard 106 is pressed by a user, for example, the key is sent to webserver 102 and server 102 contains and executes input device web script112, which determines how to respond to the particular input. Here,input device web script 112 on web server 102 can communicate with abrowser extension, on web-enabled client device 104, that understands aspecial adaptive keyboard command protocol. In a second technique, inputdevice web script 112 is downloaded from web server 102 to web-enabledclient device 104 and executes locally on client 104. In this technique,while dormant, input device web script 112 can continuously polldevices, such as active keyboard 106, to determine if a particular keyis pressed, for example, and provide a suitable response when theparticular input is detected. As in the case of the first technique, thesecond technique also requires a suitable web browser extension tosupport the additional functionality that it provides. Details regardingcertain software aspects of the above two example techniques areprovided further below in connection with FIGS. 3A and 3B.

Referring again to FIG. 1, in general, web-enabled client device 104includes a host controller 114, a program memory 116, a data memory 118and a display device 120. Program memory 116, data memory 118 anddisplay device 120 operate under the control of host controller 114. Theprogram memory 116 includes a suitable program such as a web browser forinterpreting HTTP or other remote commands from the server 102. Hostcontroller 114 can communicate with adaptive keyboard 106 and server 102using any suitable type of wired (universal serial bus (USB), forexample) or wireless link. In FIG. 1, the communication link betweenhost controller 114 and adaptive keyboard 106 is denoted by referencenumeral 146 and the network connection between host controller 114 andweb server 102 is denoted by reference numeral 148.

Program memory 116, of web-enabled client device 104, includes, asmentioned above, a web browser 126 and program code (including keycapdisplay driver 130) to communicate to web server 102 and adaptivekeyboard 106. Also included in program memory 116 is a web browserextension 128 that is configured to support the extended functionalitythat the present embodiments provide. One such additional functionincluded in web browser extension 128 can be the ability to query andreport to web server 104 whether a web configurable human input deviceis present and, if present, also report the type of web configurablehuman input device. It should be noted that this function is an additionto reporting functions included in current web browsers. Of course,other applications (denoted by reference numeral 132), which areunrelated to the present embodiments, can also be stored in programmemory 116.

Data memory 118 can store input device web script 122 and keytop bitmaps124, which can be sent to adaptive keyboard 106 when commanded by webbrowser 126 (in some embodiments) or keyboard logic (in otherembodiments). It should be noted that input device web scripts are givendifferent numbers on web server 102 and web-enabled client device 104because they are different copies. In web-enabled client device 104,display device 120 renders HTML code and executes logic scriptsdownloaded from web server 102.

As can be seen in FIG. 1, adaptive keyboard 106 includes amicrocontroller 134, a mechanical keyswitch matrix (or array of keys)136 with x rows and y columns, well known to those skilled in the art, aserial interface bus 138, a plurality (N) of individual displaycontrollers 140 and a plurality (N) of graphics displays 142.Microcontroller 134 communicates with web-enabled client device 104 andserial interface bus 138, and reads a status of mechanical keyswitchmatrix 136. Serial interface bus 138 connects the N individual displaycontrollers 140, each inside an individual key, which contains displayrandom access memory (RAM), a timing generator, and row and columndrivers. The N graphics displays 142 display information contained intheir respective display controller RAM.

As indicated above, in the present embodiments, a web page on web server102 initially contains input device web script 112 that determines bothwhat to display on keys and what action is taken when a key is pressed(or any other input command is received, such as mouse or speech input).For example, if function keys 144 are all programmable, input device webscript 112 can change all the function keytops to alternate displayswhen a “shift” key is pressed. Similarly, input device web script couldchange the keytops when a timer expires, or when data from anothernetwork source changes; for example a key flashes a red icon to indicatesomeone is requesting an Internet voice call or instant messagingsession. An HTML web page may contain special embedded objects, thatwhen downloaded to client browser 126, cause it to send a command toadaptive keyboard 106 to change a display on a particular keytop. Ifclient browser 126 does not understand this special object, no action istaken. Also, as mentioned above, a web browser extension may include theability to query and report to web server 104 whether a web configurablehuman input device is present and, if present, also report the type ofweb configurable human input device.

In the above programmable function key example, in addition to utilizinggraphics displays on top of each function key, the keys can also beilluminated in two or more colors such as red, yellow, and green.Further, the keys can be made to flash color or display animations. Ingeneral, such embodiments allow web page authors to control the contentand appearance of the keyboard function keys to display a dynamic menuof possible actions. For example, a mapping site might define one key toprint a map with a green printer icon, two more keys to zoom in and outwith large and small magnifying glass icons, and another letter icon toemail a map to a friend.

Another example is an online auction site using the active keyboardinterface to help their customers keep track of participation in onlineauctions. The online auction site could deploy an application whichassigns each auction being watched a key on the active keyboard. Eachkey has an icon or text identifying the type of auction, and is green,or red, signifying whether or not the user has been outbid. Simplypressing the key when it turns red could enter a new bid.

In the above examples, web applications communicate with configurablekeyboards to make their web sites easier to navigate and use, especiallyfor novice users. The above embodiments also provide a consistenttechnique for presenting options to a user without utilizing valuablescreen real estate.

FIG. 2A is a simplified block diagram of a computing system 200 thatincludes an adaptive mouse 206, which is another example of a webconfigurable human input device. In FIG. 2A, components of system 200that are similar to components of system 100 (FIG. 1) are denoted by thesame reference numerals. Also, descriptions of these similar componentsare not repeated. A typical mouse is equipped with a scroll wheel, whichcan be used to scroll an information window vertically. With a standardmouse, user input to the scroll wheel will typically not result in anyresponse unless the active information window has either horizontal orvertical scroll bars displayed. However, in the embodiment of FIG. 2A, ascroll wheel 238, which is translucent and can be illuminated by acolored light-emitting diode (LED), is included. Illumination of scrollwheel 238 is controlled with the help of microcontroller 234, whichcommunicates with web-enabled client device 104, and LED control circuit236. In an example embodiment, when a web page displays a window or listbox with vertical scroll bars, input device web script 112 or a localapplication can illuminate scroll wheel 238, indicating to a user thatits function is active. This adaptive behavior of input devices makesweb browsing and computer software easier to learn and use.

FIG. 2B is a simplified block diagram of a computing system 250 thatincludes an adaptive game controller 256, which is yet another exampleof a web configurable human input device. In FIG. 2B, components ofsystem 250 that are similar to components of systems 100 (FIG. 1) and200 (FIG. 2A) are denoted by the same reference numerals. In the verysimplified block diagram of FIG. 2B, example adaptive game controller256 is shown as including a microcontroller 284 and a single mechanicalcontrol element (or game control element) 286, which has a dynamicallyalterable appearance. As in the case of the earlier describedembodiments, game control element 286 is configured to change itsappearance in response to execution of input device web script 112 onweb server 102 or in response to execution of downloaded input deviceweb script 122 locally on web-enabled client device 104. In oneparticular embodiment in an online game, input device web script 112,122, may be executed upon the occurrence of a predetermined event onweb-enabled client device 104. In one example, switching weapons in afirst person shooter game highlights the controls that are active forthat particular weapon. In this manner, the various input mode changesthat occur frequently in video games can be communicated to the user byilluminating or highlighting the active controls.

It should be not that although each of the above examples of webconfigurable human input devices have been shown as belonging to adifferent computing system, all the above example web configurable humaninput devices can be included in a single computing system. Otherexamples of web configurable human input devices include adaptivetrackballs, touch pads, joysticks, game pads, etc.

In accordance with another one of the present embodiments, a pluralityof standard and custom key assignments and keytop legends can be madeavailable for both local and Web applications, and this information canbe stored in a user profile on the Web. Here, an adaptive keyboard iscustomized for a user's context, no matter where the user is located orwhat computer is being used. A suitable browser extension allows aserver or local script to query a user's personal computer (PC) for thepresence and type of configurable web device. If such a device ispresent, it can be utilized to the extent of its capabilities. If not,the web site can alternatively provide clickable controls on theclient's visual rendering of the web page or a virtual representation ofthe active device controls as they would appear.

FIGS. 3A and 3B illustrate software component sets 300 and 350 employedfor implementing the two different example techniques, discussedearlier, for utilizing an input device web script to control informationon a web configurable human input device. As noted earlier, in the firsttechnique, an input device web script executes on a web server, and inthe second technique, the input device web script is downloaded from theweb server and executes on the web-enabled client device. FIGS. 3A and3B show software components for implementing the first and secondtechniques, respectively. In FIGS. 3A and 3B, similar components on aweb server side (302 in FIGS. 3A and 352 in FIG. 3B) include activeserver pages, web server applications and transmission controlprotocol/Internet protocol (TCP/IP) communication stacks. Similarcomponents in both embodiments on a client side (304 in FIGS. 3A and 354in FIG. 3B) include TCP/IP communication stacks, adaptive hardwaredrivers and communication stacks for communicating with hardware andfirmware of a web configurable human input device.

In the example embodiment shown in FIG. 3A, the input device web scriptis the form of an adaptive hardware component object model (COM) objectextension 306 on server side 302 that communicates with the webconfigurable human input device via adaptive hardware browser extension308 on client side 308. In contrast, the example embodiment shown inFIG. 3B includes an adaptive hardware client script library 356 onserver side 352 from which a copy of adaptive hardware client sidescript 358 is downloaded to the client side and executes locally on theclient machine. This allows for faster response times for Internetgames, for example, and faster switching between a fixed set ofdisplayed functions.

Any person skilled in the art would recognize that there are othercommunications models possible and certainly more will evolve asInternet software technology evolves.

FIG. 4 illustrates an example of a suitable computing system environment400 on which embodiments may be implemented. One exemplary place for webconfigurable human input devices (such as 106, 206 and 256) to fit intoenvironment 400 is in user input interface 460, which is described ingeneral below. Suitable drivers, browser extensions and input device webscripts for the operation of web configurable human input devices (suchas 106, 206 and 256) can be included in one or more memories shown inFIG. 4. Also, the computing system environment 400 is only one exampleof a suitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the claimedsubject matter. Neither should the computing environment 400 beinterpreted as having any dependency or requirement relating to any oneor combination of components illustrated in the exemplary operatingenvironment 400. Embodiments are operational with numerous other generalpurpose or special purpose computing system environments orconfigurations. Examples of well-known computing systems, environments,and/or configurations that may be suitable for use with variousembodiments include, but are not limited to, personal computers, servercomputers, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, set top boxes, televisions, programmableconsumer electronics, network PCs, minicomputers, mainframe computers,telephony systems, distributed computing environments that include anyof the above systems or devices, and the like.

Embodiments may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. Someembodiments are designed to be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules are located in both local and remotecomputer storage media including memory storage devices.

With reference to FIG. 4, an exemplary system for implementing someembodiments includes a general-purpose computing device in the form of acomputer 410. Components of computer 410 may include, but are notlimited to, a processing unit 420, a system memory 430, and a system bus421 that couples various system components including the system memoryto the processing unit 420. The system bus 421 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

Computer 410 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 410 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage mediaand communication media. Computer storage media includes both volatileand nonvolatile, removable and non-removable media implemented in anymethod or technology for storage of information such as computerreadable instructions, data structures, program modules or other data.Computer storage media includes, but is not limited to, RAM, ROM,EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by computer 410. Communication media typicallyembodies computer readable instructions, data structures, programmodules or other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. The term “modulated data signal” means a signal that has one ormore of its characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of any of the aboveshould also be included within the scope of computer readable media.

The system memory 430 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 431and random access memory (RAM) 432. A basic input/output system 433(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 410, such as during start-up, istypically stored in ROM 431. RAM 432 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 420. By way of example, and notlimitation, FIG. 4 illustrates operating system 434, applicationprograms 435, other program modules 436, and program data 437.

The computer 410 may also include other removable/non-removablevolatile/nonvolatile computer storage media. By way of example only,FIG. 4 illustrates a hard disk drive 441 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 451that reads from or writes to a removable, nonvolatile magnetic disk 452,and an optical disk drive 455 that reads from or writes to a removable,nonvolatile optical disk 456 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 441 is typically connectedto the system bus 421 through a non-removable memory interface such asinterface 440, and magnetic disk drive 451 and optical disk drive 455are typically connected to the system bus 421 by a removable memoryinterface, such as interface 450.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 4, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 410. In FIG. 4, for example, hard disk drive 441 is illustratedas storing operating system 444, application programs 445, other programmodules 446, and program data 447. Note that these components can eitherbe the same as or different from operating system 434, applicationprograms 435, other program modules 436, and program data 437. Operatingsystem 444, application programs 445, other program modules 446, andprogram data 447 are given different numbers here to illustrate that, ata minimum, they are different copies.

A user may enter commands and information into the computer 410 throughinput devices such as a keyboard 462, a microphone 463, and a pointingdevice 461, such as a mouse, trackball or touch pad. Other input devices(not shown) may include a joystick, game pad, satellite dish, scanner,or the like. Still other input devices (not shown) can include non-humansensors for temperature, pressure, humidity, vibration, rotation, etc.These and other input devices are often connected to the processing unit420 through a user input interface 460 that is coupled to the systembus, but may be connected by other interface and bus structures, such asa parallel port, game port or a USB. It should be noted that the inputdevices may be web configurable human input devices in accordance withthe present embodiments. A monitor 491 or other type of display deviceis also connected to the system bus 421 via an interface, such as avideo interface 490. In addition to the monitor, computers may alsoinclude other peripheral output devices such as speakers 497 and printer496, which may be connected through an output peripheral interface 495.

The computer 410 is operated in a networked environment using logicalconnections to one or more remote computers, such as a remote computer480. The remote computer 480 may be a personal computer, a hand-helddevice, a server, a router, a network PC, a peer device or other commonnetwork node, and typically includes many or all of the elementsdescribed above relative to the computer 410. The logical connectionsdepicted in FIG. 4 include a local area network (LAN) 471 and a widearea network (WAN) 473, but may also include other networks. Suchnetworking environments are commonplace in offices, enterprise-widecomputer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 410 is connectedto the LAN 471 through a network interface or adapter 470. When used ina WAN networking environment, the computer 410 typically includes amodem 472 or other means for establishing communications over the WAN473, such as the Internet. The modem 472, which may be internal orexternal, may be connected to the system bus 421 via the user inputinterface 460, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 410, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, FIG. 4 illustrates remoteapplication programs 485 as residing on remote computer 480. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

It should be understood that the phrase “browser extension,” which hasbeen used above in connection with a browser add-on to support theextended functionality that the present embodiments provide, is used ina generic sense and can be equally applied to an “Active X control,” or“Browser Helper Object,” for example, each of which can be utilized inconjunction with certain browsers. Downloading and installing an ActiveX control from a web site, for example, makes a library of extendedfunctions permanently available to the client for control of activeinput devices (web configurable human input devices, for example). Incontrast with the permanent availability of an installed Active Xcontrol, a Browser Helper Object is usually loaded once for each copy ofthe browser that is running.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A web configurable human input device comprising:a plurality of user input elements; a plurality of dynamically alterabledisplays that are associated with the user input elements; a microcontroller that receives images, a script, and a user profile from a webserver, wherein the user profile includes custom key assignments forboth local applications and web-based applications, the micro controllerassigning the images to the displays based at least in part on the userprofile and the script, and the micro controller utilizing the script toexecute a specified action in response to an actuation of one of theuser input elements; and a web browser extension that is received by thehuman input device through a web page, the web browser extension beingconfigured to determine a status of the human input device and to reportthe status to the web page, wherein the status of the human input deviceincludes an indication of whether or not a time has expired.
 2. Thedevice of claim 1, wherein at least one of the dynamically alterabledisplays is a component of a scroll wheel.
 3. The device of claim 1,wherein the micro controller utilizes the script to continuously pollthe user input elements to detect the actuation of the one of the userinput elements, wherein the user profile is stored remotely and isconfigured to be accessed by multiple computing devices, and wherein thespecified action includes displaying an animation.
 4. The device ofclaim 1, and further comprising: a timing generator that alters thedisplays based on an expiration of a time; wherein the script includescustom HTML code extensions; and wherein the specified action includesilluminating an active control.
 5. The system of claim 1, wherein thedynamically alterable displays are components of a game controller,wherein the script illuminates a portion of the dynamically alterabledisplays based on which ones of the plurality of user input elements areactive within a video game, and wherein the script is implementedutilizing an adaptive hardware component object model.
 6. A methodcomprising: receiving at a web-enabled client device a web script and auser profile from a web server, wherein the user profile is specific toa user of a user input device and includes information indicative of keyassignments on the user input device for customizing the user inputdevice for the user's context; receiving from the web server a queryrequesting information pertaining to presence of the user input deviceand a type of the user input device; receiving at the web-enabled clientdevice an input from the user input device; utilizing the web-enabledclient device to generate an image request based at least in part on theweb script, the user profile, and the input; transmitting the imagerequest from the web-enabled client device to the web server; receivingimages at the web-enabled client device from the web server; utilizingthe user profile and a controller of the web-enabled client device todetermine key assignments on the user input device for the images; andtransmitting the images from the web-enabled client device to the userinput device based at least in part on the determined key assignments.7. The method of claim 6, wherein receiving the input from the userinput device comprises polling the user input device to detect theinput, wherein the web server is associated with a mapping site, andwherein the key assignments include associating keys with a zoom infunction, a zoom out function, a printing function, and an emailfunction.
 8. The method of claim 6, and further comprising: querying theuser input device to determine its type; reporting the user input devicetype to the web server; wherein the web server is associated with anonline auction site; and wherein the key assignments include associatingkeys with an auction, a status of a bid, and a bidding function.
 9. Themethod of claim 6, wherein the web server is associated with an onlinegame, wherein the key assignments include highlighting active keys, andwherein the input from the user input device is associated with changinga weapon within the online game.
 10. The method of claim 6, wherein theuser input device is customized for the user's context independent ofthe client device and of a location of the user.
 11. The method of claim6, wherein the web script received at the web-enabled client device isbased at least in part on a response to the query.
 12. The device ofclaim 2, wherein the component of the scroll wheel is configured toilluminate the scroll wheel.